﻿//这个类主要用于像树的图形绘制
//author 夏天的树人
//vesion 1.0
//绘制一棵树
package org.summerTree.graphics
{
	
	import flash.display.Sprite;
	import flash.display.Graphics;
	import flash.events.*;

	public class SimpleTree extends Base 
	{		
		//private var LineColor:uint=0x000000;//线条颜色
		public function SimpleTree()
		{
			 
		}
		override public function clone():*
		{
			return new SimpleTree();
		}
		
		//绘图对象，基本坐标px,py,角度，偏移长度，数量
		public function CreatTree(px:Number,py:Number,angle:Number,len:Number,n:int,offerAngle:Number=30):void
		{
			if (n>0)
			{
				var x1:Number=px+0.1*len*Math.cos(angle*Math.PI/180);
				var y1:Number=py-0.1*len*Math.sin(angle*Math.PI/180);

				var x2:Number=px+len*Math.cos(angle*Math.PI/180);
				var y2:Number=py-len*Math.sin(angle*Math.PI/180);

				drawLine(this.graphics,n-1,px,py,x2,y2);

				var a_left:Number=angle+offerAngle;

				var a_right:Number=angle-offerAngle;

				len = len*2/3;
				CreatTree(x2, y2, angle-Math.random()*10,len,  n-1);
				CreatTree(x1, y1, a_left,len*2/3, n-1);
				CreatTree(x1, y1, a_right, len*2/3,n-1);

				CreatTree(x2, y2, a_left,len*2/3,  n-1);
				CreatTree(x2, y2, a_right,len*2/3,  n-1);
			}
		}
		//绘制线
		private function drawLine(g:Graphics,n:int,x1:Number,y1:Number,x2:Number,y2):void
		{
			g.lineStyle(n,color);
			g.moveTo(x1,y1);
			g.lineTo(x2,y2);
		}
		
		//public function clear():void
//		{
//			this.graphics.clear();
//		}
		
		
		////设置颜色
//		public function set color(value:uint):void
//		{
//			this.LineColor=value;
//		}
//		//获取颜色
//		public function get color():uint
//		{
//			return this.LineColor;
//		}
		
	}
}